home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / asm / demos / sinescroll_1 / inner_city_hb.s next >
Text File  |  1980-01-03  |  9KB  |  383 lines

  1.         SECTION    Uno-Pixel,code_c
  2.  
  3. ;        opt    c-
  4.  
  5. pheight        = 200
  6. pwidth        = 40
  7. psize        = pwidth*pheight
  8. execbase    = 4
  9. openlib        = -408
  10. closelib    = -414
  11.  
  12. **************************************
  13. fontheight    = 16
  14. **************************************
  15.  
  16. run:                * no doubt or nodout
  17.     move.l    $80,otrap0
  18.     move.l    #prog,$80
  19.     trap    #0
  20.     move.l    otrap0,$80
  21.     rts
  22.  
  23. prog
  24.     movem.l    d0-d7/a0-a6,-(sp)
  25.     bsr    init_music
  26.     lea    $dff000,a5
  27.     bsr    init_stuff
  28.     bsr    clearsprites
  29.     bsr    buildmulus
  30.     bsr    setup
  31.     move.l    execbase,a6
  32.     clr.l    38(a6)
  33.     lea    graphname(pc),a1
  34.     moveq    #0,d0
  35.     jsr    openlib(a6)
  36.     tst.l    d0
  37.     beq    quit
  38.     move.l    d0,a1
  39.     move.l    38(a1),oldcop
  40.     jsr    closelib(a6)
  41.     move    #$4000,intena(a5)
  42.     move.l    $6c,oldl3
  43.     move    intenar(a5),d0
  44.     or    #$c000,d0
  45.  
  46.     move    d0,saveirq
  47.     move    #%001111111111111,intena(a5)
  48.     move.l    #newl3,$6c
  49.     move    #$80,dmacon(a5)
  50.     clr    copjmp1(a5)
  51.     move.l    #newcop,cop1lch(a5)
  52.     move    #$8080,dmacon(a5)
  53.     clr.w    bltcon1(a5)
  54.     move.l    #$ffffffff,bltafwm(a5)
  55.     move    #$c010,intena(a5)
  56. wait    
  57.     btst    #6,$bfe001
  58.     bne.s    wait
  59. quit
  60.     move    #$80,dmacon(a5)
  61.     move.l    oldcop,cop1lch(a5)
  62.     clr    copjmp1(a5)
  63.     move    #$4000,intena(a5)
  64.     move.l    oldl3,$6c
  65. blitfinito
  66.     btst    #14,dmaconr(a5)
  67.     bne.s    blitfinito
  68.     bsr    end_music
  69.     move    #$80a0,dmacon(a5)
  70.     move    saveirq,intena(a5)
  71.     move    #$f,dmacon(a5)
  72.     movem.l    (sp)+,d0-d7/a0-a6
  73.     rte
  74.  
  75. newl3
  76.     and    #$10,intreqr(a5)        
  77.     beq.s    out
  78.     movem.l d0-d7/a0-a6,-(sp)
  79.     btst    #10,$dff016
  80.     bne.s    .skip
  81.     add    #1,scrolldelay
  82. .skip
  83.     move    #$400,dmacon(a5)
  84.     bsr    mighty_fine
  85.     bsr    logoshaker
  86.     bsr    play
  87.     move    #$8400,dmacon(a5)
  88.     movem.l (sp)+,d0-d7/a0-a6
  89. out    move    #$0070,intreq(a5)
  90.     rte
  91.  
  92. buildmulus
  93.     lea    sinetable,a0
  94. buildloop
  95.     move    (a0),d0
  96.     mulu    #40,d0
  97.     move    d0,(a0)+
  98.     cmp.l    #stopsine,a0
  99.     blt.s    buildloop
  100.     rts
  101.  
  102. ****************************************        
  103.  
  104. mighty_fine
  105.     move.l    #buff1,d0
  106.     move.l    #buff2,d1
  107.     tst.w    display_count
  108.     beq.s    usea
  109.     exg.l    d0,d1
  110.     move    #0,display_count
  111.     bra.s    skipmove
  112. usea
  113.     move    #1,display_count    
  114. skipmove
  115.     move.l    d0,curscreen
  116.     move.l    d1,newscreen
  117.     move    d0,p6lo
  118.     swap    d0
  119.     move    d0,p6hi
  120.     cmp.w    #0,scrolldelay
  121.     beq.s    .skip
  122.     sub    #1,scrolldelay
  123.     move.b    #1,delay_flag
  124.     bra.s    nohorizscroll
  125. .skip
  126.     move.b    #0,delay_flag
  127. njw    btst    #14,dmaconr(a5)
  128.     bne.s    njw
  129.     move.l    #$ffffffff,bltafwm(a5)
  130.     move    #0,bltamod(a5)
  131.     move    #0,bltdmod(a5)            ;ok
  132.     move.l    #scrollzone+2,bltapth(a5)
  133.     move.l    #scrollzone,bltdpth(a5)
  134.     move    #$e9f0,bltcon0(a5)
  135.     move    #(fontheight*64)+21,bltsize(a5)
  136.     move    #$8400,dmacon(a5)
  137. nohorizscroll
  138.     btst    #14,dmaconr(a5)
  139.     bne.s    nohorizscroll
  140.     move    #$400,dmacon(a5)
  141.     move    #$0dfc,bltcon0(a5)
  142.     move    #$ffff,bltafwm(a5)
  143.     move    #40,bltamod(a5)
  144.     move    #38,bltbmod(a5)
  145.     move    #38,bltdmod(a5)
  146.     lea    scrollzone+2,a0
  147.     move.l    curscreen,a3
  148.     move.l    sineptr,a2
  149.     move    #$8000,d6            ;Mask in D6.
  150.     moveq    #19,d7
  151. dovert    
  152.     move.l    a3,a1
  153.     add    (a2)+,a1
  154.     move    #$8400,dmacon(a5)
  155.     
  156. .wt
  157.     btst    #14,dmaconr(a5)
  158.     bne.s    .wt
  159.     move    #$400,dmacon(a5)
  160.     move.l    a0,bltapth(a5)
  161.     move.l    a1,bltbpth(a5)
  162.     move.l    a1,bltdpth(a5)
  163.     move    d6,bltafwm(a5)
  164.     move    #(fontheight*64)+1,bltsize(a5)
  165. oksin1    
  166.     ror    #1,d6
  167.     bpl.s    dovert
  168.     lea    2(a0),a0
  169.     lea    2(a3),a3
  170.     dbra    d7,dovert
  171.     cmp.b    #0,delay_flag
  172.     bne.s    nochar
  173.     add    #2,pixelcount
  174.     and    #$f,pixelcount
  175.     bne.s    nochar    
  176.     move.l    textptr,a0
  177.     cmp.b    #$fe-32,(a0)
  178.     bne.s    skipo
  179.     move    #400,scrolldelay
  180.     add.l    #1,a0
  181.     move.l    a0,textptr
  182. skipo
  183.     cmp.b    #$ff,(a0)
  184.     bne.s    notwrap
  185.     move.l    #text,a0
  186. notwrap    
  187.     move.b    (a0)+,d0
  188.     and    #$ff,d0
  189.     lsl    #1,d0
  190.     lea    font,a1    
  191.     lea    (a1,d0),a1
  192.     move.l    #scrollzone,a2
  193.     moveq    #fontheight-1,d7
  194. cloop    move    (a1),(a2)
  195.     lea    120(a1),a1        ;font layed out as straight line
  196.     lea    42(a2),a2
  197.     dbra    d7,cloop
  198.     move.l    a0,textptr
  199. nochar    btst    #14,dmaconr(a5)
  200.     bne.s    nochar
  201.     move    #$100,bltcon0(a5)
  202.     move.l    newscreen,bltdpth(a5)
  203.     move    #0,bltamod(a5)
  204.     move    #0,bltdmod(a5)
  205.     move    #(187*64)+20,bltsize(a5)
  206.     add.l    #2,sineptr
  207.     cmp.l    #endsine,sineptr
  208.     blt.s    exit
  209.     sub.l    #endsine-sinetable,sineptr
  210. exit    rts
  211.  
  212. ***************************************
  213. graphname
  214.     dc.b    'graphics.library',0
  215.     even
  216. gbase    dc.l    0
  217. oldcop    dc.l    0
  218. oldl3    dc.l    0
  219. saveirq    dc.w    0
  220. display_count    dc.w    0
  221. otrap0    dc.l    0
  222. sineptr    dc.l    sinetable
  223. scrolldelay
  224.     dc.w    0
  225. delay_flag    dc.b    0
  226.         even
  227. pixelcount
  228.     dc.w    0
  229.  
  230. setup
  231.     move.l    #text,a0
  232. loopu
  233.     move.b    (a0),d0
  234.     sub.b    #32,d0
  235.     move.b    d0,(a0)+
  236.     cmp.b    #$ff,(a0)
  237.     bne.s    loopu
  238.     rts
  239.  
  240. sinetable
  241.     dc.w  0,0,0,0,0,0,0,1,1,1,1,2,2,2,3 
  242.     dc.w  3,3,4,4,5,5,6,6,7,7,8,9,9,10,11 
  243.     dc.w  11,12,13,14,15,15,16,17,18,19,20,21,22,23,24 
  244.     dc.w  25,26,27,28,29,30,32,33,34,35,36,37,39,40,41 
  245.     dc.w  42,44,45,46,48,49,50,52,53,55,56,57,59,60,62 
  246.     dc.w  63,64,66,67,69,70,72,73,75,76,78,79,81,82,84 
  247.     dc.w  85,86,88,89,91,92,94,95,97,98,100,101,103,104,106 
  248.     dc.w  107,108,110,111,113,114,115,117,118,120,121,122,124,125,126 
  249.     dc.w  128,129,130,131,133,134,135,136,137,138,140,141,142,143,144 
  250.     dc.w  145,146,147,148,149,150,151,152,153,154,155,155,156,157,158 
  251.     dc.w  159,159,160,161,161,162,163,163,164,164,165,165,166,166,167 
  252.     dc.w  167,167,168,168,168,169,169,169,169,170,170,170,170,170,170 
  253.     dc.w  170,170,170,170,170,170,170,169,169,169,169,168,168,168,167 
  254.     dc.w  167,167,166,166,165,165,164,164,163,163,162,161,161,160,159 
  255.     dc.w  159,158,157,156,155,155,154,153,152,151,150,149,148,147,146 
  256.     dc.w  145,144,143,142,141,140,138,137,136,135,134,133,131,130,129 
  257.     dc.w  128,126,125,124,122,121,120,118,117,115,114,113,111,110,108 
  258.     dc.w  107,106,104,103,101,100,98,97,95,94,92,91,89,88,86 
  259.     dc.w  85,84,82,81,79,78,76,75,73,72,70,69,67,66,64 
  260.     dc.w  63,62,60,59,57,56,55,53,52,50,49,48,46,45,44 
  261.     dc.w  43,41,40,39,37,36,35,34,33,32,30,29,28,27,26 
  262.     dc.w  25,24,23,22,21,20,19,18,17,16,15,15,14,13,12 
  263.     dc.w  11,11,10,9,9,8,7,7,6,6,5,5,4,4,3 
  264.     dc.w  3,3,2,2,2,1,1,1,1,0,0,0,0,0,0
  265.     dc.w  0,0,0,0 
  266. endsine 
  267.     dc.w  0,0,0,0,0,0,0,1,1,1,1,2,2,2,3 
  268.     dc.w  3,3,4,4,5,5,6,6,7,7,8,9,9,10,11 
  269.     dc.w  11,12,13,14,15,15,16,17,18,19,20,21,22,23,24 
  270.     dc.w  25,26,27,28,29,30,32,33,34,35,36,37,39,40,41 
  271.     dc.w  42,44,45,46,48,49,50,52,53,55,56,57,59,60,62 
  272.     dc.w  63,64,66,67,69,70,72,73,75,76,78,79,81,82,84 
  273.     dc.w  85,86,88,89,91,92,94,95,97,98,100,101,103,104,106 
  274.     dc.w  107,108,110,111,113,114,115,117,118,120,121,122,124,125,126 
  275.     dc.w  128,129,130,131,133,134,135,136,137,138,140,141,142,143,144 
  276.     dc.w  145,146,147,148,149,150,151,152,153,154,155,155,156,157,158 
  277.     dc.w  159,159,160,161,161,162,163,163,164,164,165,165,166,166,167 
  278.     dc.w  167,167,168,168,168,169,169,169,169,170,170,170,170,170,170 
  279.     dc.w  170,170,170,170,170,170,170,169,169,169,169,168,168,168,167 
  280.     dc.w  167,167,166,166,165,165,164,164,163,163,162,161,161,160,159 
  281.     dc.w  159,158,157,156,155,155,154,153,152,151,150,149,148,147,146 
  282.     dc.w  145,144,143,142,141,140,138,137,136,135,134,133,131,130,129 
  283.     dc.w  128,126,125,124,122,121,120,118,117,115,114,113,111,110,108 
  284.     dc.w  107,106,104,103,101,100,98,97,95,94,92,91,89,88,86 
  285.     dc.w  85,84,82,81,79,78,76,75,73,72,70,69,67,66,64 
  286.     dc.w  63,62,60,59,57,56,55,53,52,50,49,48,46,45,44 
  287.     dc.w  43,41,40,39,37,36,35,34,33,32,30,29,28,27,26 
  288.     dc.w  25,24,23,22,21,20,19,18,17,16,15,15,14,13,12 
  289.     dc.w  11,11,10,9,9,8,7,7,6,6,5,5,4,4,3 
  290.     dc.w  3,3,2,2,2,1,1,1,1,0,0,0,0,0,0
  291.     dc.w  0,0,0,0 
  292. stopsine
  293. ***********************************************
  294. init_stuff
  295.     move.l    #piccy,d0
  296.     move    d0,p1lo
  297.     swap    d0
  298.     move    d0,p1hi
  299.     swap    d0
  300.     add.l    #psize,d0
  301.     move    d0,p2lo
  302.     swap    d0
  303.     move    d0,p2hi
  304.     swap    d0
  305.     add.l    #psize,d0
  306.     move    d0,p3lo
  307.     swap    d0
  308.     move    d0,p3hi
  309.     swap    d0
  310.     add.l    #psize,d0
  311.     move    d0,p4lo
  312.     swap    d0
  313.     move    d0,p4hi
  314.     swap    d0
  315.     add.l    #psize,d0
  316.     move    d0,p5lo
  317.     swap    d0
  318.     move    d0,p5hi
  319.     move.l    #buff1,d0
  320.     move    d0,p6lo
  321.     swap    d0
  322.     move    d0,p6hi
  323.     move.l    #logo,d0
  324.     move    d0,l1lo
  325.     swap    d0
  326.     move    d0,l1hi
  327.     swap    d0
  328.     add.l    #(51*78),d0
  329.     move    d0,l2lo
  330.     swap    d0
  331.     move    d0,l2hi
  332.     swap    d0
  333.     add.l    #(51*78),d0
  334.     move    d0,l3lo
  335.     swap    d0
  336.     move    d0,l3hi
  337.     rts
  338.  
  339. clearsprites
  340.     lea    $dff144,a0
  341.     moveq    #7,d7
  342. loopydo
  343.     clr.l    (a0)
  344.     lea    4(a0),a0
  345.     dbra    d7,loopydo
  346.     rts
  347.  
  348. text    DC.B    "    INNER  CITY     ",$FE
  349.     DC.B    "      PRESENTS      ",$FE
  350.     DC.B    "    A NEW CRACK     ",$FE
  351.     DC.B    " CODED IN 1990 BY "
  352.     DC.B    " HOTWIRE/INNER CITY ",$FE
  353.     DC.B    "MEGA-GREETS GOTO MOSES AND DR.DUBBS OF MODESTY "
  354.     DC.B    "FOR BEING SUCH COOL DUDES .... NOW THE CREDITS OF "
  355.     DC.B    "THE INTRO .... "
  356.     DC.B    " CODING :"
  357.     DC.B    " HOTWIRE/INNER CITY ",$FE
  358.     DC.B    "  -  GRAPHICS : "
  359.     DC.B    "  POD OF INNER CITY ",$FE 
  360.     DC.B    "-  MUSIC : "
  361.     DC.B    "UNCLE TOM & ZIPHOID ",$FE
  362.     DC.B    "  AND IS TAKEN FROM "
  363.     DC.B    "RAZOR 1911+S MUSIC DISK CALLED #DELICATE SOUNDS# "
  364.     DC.B    "RIPPED BY HOTWIRE ..... "
  365.     DC.B    "          "
  366.     DC.B    "GREETINGS GOTO ALL "
  367.     dc.b    " INNER CITY MEMBERS ",$FE
  368.     dc.b    "- ALSO A SPECIAL "
  369.     DC.B    "GREET GOES TO  "
  370.     dc.b    "  JROK+90 OF MAYHEM ",$FE
  371.     dc.b    "-  "
  372.     dc.b    "A.D.S. OF INNER CITY",$FE
  373.     DC.B    " -  "
  374.     DC.B    "Q.E.D. OF INNER CITY",$FE
  375.     dc.b    "  - "
  376.     DC.B    " MYSTIK OF EXTREME  -  COUNT ZERO AND RASTER OF "
  377.     DC.B    "ANTHROX  -  DR.C OF RED SECTOR  -  VANDAL AND STATIC "
  378.     DC.B    "OF PARADOX  -  ICEMAN OF MODESTY  -  FIREFLY,ZARCHY,LAMESLUG"
  379.     DC.B    " AND BANDASNATCH OF T.H.R.  -  POWERCUT OF MAYHEM  -  ZEUS OF "
  380.     DC.B    "PUBLIC ENEMIES  -  DR.ZERONINE OF QUADLITE  -  "
  381.     DC.B    "I AM SORRY IF I MISSED ANYBODY OUT , SEE MY SINE IS MELLOW "
  382.     DC.B    "DEMO FOR THE FULL GREETINGS LIST ..... PRESS THE LEFT MOUSE "
  383.     DC.B    "BUTT